home *** CD-ROM | disk | FTP | other *** search
Wrap
/* ------------------------------------------------------------ */ /* HTTrack Website Copier, Offline Browser for Windows and Unix Copyright (C) Xavier Roche and other contributors This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Important notes: - We hereby ask people using this source NOT to use it in purpose of grabbing emails addresses, or collecting any other private information on persons. This would disgrace our work, and spoil the many hours we spent on it. Please visit our Website: http://www.httrack.com */ /* ------------------------------------------------------------ */ /* File: Main file .h */ /* Author: Xavier Roche */ /* ------------------------------------------------------------ */ // Fichier librairie .h #ifndef HTTRACK_DEFH #define HTTRACK_DEFH #include "htsglobal.h" /* specific definitions */ #include "htsbase.h" // Includes & dΘfinitions #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #ifdef _WIN32 #include <conio.h> #include <signal.h> #include <direct.h> #else #include <signal.h> #include <unistd.h> #endif /* END specific definitions */ // Include htslib.h for all types #include "htslib.h" #include "htsopt.h" // structure d'un lien typedef struct { char firstblock; // flag 1=premier malloc char link_import; // lien importΘ α la suite d'un moved - ne pas appliquer les rΦgles classiques up/down short int depth; // profondeur autorisΘe lien ; >0 forte 0=faible short int pass2; // traiter aprΦs les autres, seconde passe. si == -1, lien traitΘ en background int premier; // pointeur sur le premier lien qui a donnΘ lieu aux autres liens du domaine int precedent; // pointeur sur le lien qui a donnΘ lieu α ce lien prΘcis //int moved; // pointeur sur moved short int retry; // nombre de retry restants short int testmode; // mode test uniquement, envoyer juste un head! char* adr; // adresse char* fil; // nom du fichier distant char* sav; // nom α sauver sur disque (avec chemin Θventuel) char* cod; // chemin codebase Θventuel si classe java char* former_adr; // adresse initiale (avant Θventuel moved), peut Ωtre nulle char* former_fil; // nom du fichier distant initial (avant Θventuel moved), peut Ωtre nul // pour optimisation: #if HTS_HASH int hash_next[3]; // prochain lien avec mΩme valeur hash #else int sav_len; // taille de sav #endif } lien_url; // chargement de fichiers en 'arriΦre plan' typedef struct { #if DEBUG_CHECKINT char magic; #endif char url_adr[HTS_URLMAXSIZE*2]; // adresse char url_fil[HTS_URLMAXSIZE*2]; // nom du fichier distant char url_sav[HTS_URLMAXSIZE*2]; // nom α sauver sur disque (avec chemin Θventuel) char referer_adr[HTS_URLMAXSIZE*2]; // adresse host page referer char referer_fil[HTS_URLMAXSIZE*2]; // fichier page referer char location_buffer[HTS_URLMAXSIZE*2]; // "location" en cas de "moved" (302,..) char send_too[1024]; // donnΘes α envoyer en mΩme temps que le header int status; // status (-1=non utilisΘ, 0: prΩt, >0: opΘration en cours) int testmode; // mode de test int timeout; // gΘrer des timeouts? (!=0 : nombre de secondes) double timeout_refresh; // si oui, time refresh int rateout; // timeout refresh? (!=0 : taux minimum tolΘrΘ en octets/s) double rateout_time; // si oui, date de dΘpart LLint maxfile_nonhtml; // taille max d'un fichier non html LLint maxfile_html; // idem pour un ficheir html htsblk r; // structure htsblk de chaque objet en background short int is_update; // mode update int head_request; // requΦte HEAD? LLint range_req_size; // range utilisΘ // int http11; // L'en tΩte doit Ωtre signΘ HTTP/1.1 et non HTTP/1.0 int is_chunk; // chunk? char* chunk_adr; // adresse chunk en cours de chargement LLint chunk_size; // taille chunk en cours de chargement // short int* pass2_ptr; // pointeur sur liens[ptr]->pass2 // char info[256]; // Θventuel status pour le ftp int stop_ftp; // flag stop pour ftp #if DEBUG_CHECKINT char magic2; #endif } lien_back; // cache typedef struct { int version; // 0 ou 1 /* */ int type; FILE *dat,*ndx,*olddat; char *use; // liste des adr+fil FILE *lst; // liste des fichiers pour la "purge" char lastmodified[256]; // HASH void** hash; int hash_size; // fichiers log optionnels FILE* log; FILE* errlog; // variables int ptr_ant; // pointeur pour anticiper int ptr_last; // pointeur pour anticiper } cache_back; typedef struct { lien_url** liens; // pointeur sur liens int max_lien; // indice le plus grand rencontrΘ int hash[3][HTS_HASH_SIZE]; // tables pour sav/adr-fil/former_adr-former_fil } hash_struct; #if HTS_HASH #else #define hash_write(A,B) #endif typedef struct { FILE* lst; char path[HTS_URLMAXSIZE*2]; } filecreate_params; // Fonctions // INCLUDES .H PARTIES DE CODE HTTRACK // routine main #include "htsmain.h" // divers outils pour httrack.c #include "htstools.h" // aide pour la version en ligne de commande #include "htshelp.h" // gΘnΘration du nom de fichier α sauver #include "htsname.h" // gestion ftp #include "htsftp.h" // routine parser java #include "htsjava.h" // gestion interception d'URL #include "htscatchurl.h" // gestion robots.txt #include "htsrobots.h" // routines d'acceptation de liens #include "htswizard.h" // routines de regexp #include "htsfilters.h" // gestion backing #include "htsback.h" // gestion cache #include "htscache.h" // gestion hashage #include "htshash.h" // INCLUDES .H PARTIES DE CODE HTTRACK // // demande d'interaction avec le shell #if HTS_ANALYSTE==2 //char HTbuff[1024]; void hts_htmlcheck_init(void); void hts_htmlcheck_uninit(void); int hts_htmlcheck_start(void); int hts_htmlcheck_end(void); int hts_htmlcheck(char* html,int len,char* url_adresse,char* url_fichier); char* hts_htmlcheck_query(char* question); char* hts_htmlcheck_query2(char* question); char* hts_htmlcheck_query3(char* question); int hts_htmlcheck_loop(lien_back* back,int back_max,int back_index,int lien_tot,int lien_ntot,LLint stat_bytes,LLint stat_bytes_recv,int stat_time,int stat_nsocket, LLint stat_written, int stat_updated, int stat_errors, int irate, int nbk ); int hts_htmlcheck_check(char* adr,char* fil,int status); // int hts_is_parsing(int flag); int hts_is_testing(void); int hts_setopt(httrackp* opt); int hts_addurl(char** url); int hts_resetaddurl(void); int copy_htsopt(httrackp* from,httrackp* to); char* hts_errmsg(void); int hts_setpause(int); // pause transfer // char* hts_cancel_file(char * s); void hts_cancel_test(void); void hts_cancel_parsing(void); // // Variables globales extern int _hts_in_html_parsing; extern int _hts_in_html_done; // % rΘalisΘs extern int _hts_in_html_poll; // parsing extern char _hts_errmsg[1100]; extern int _hts_setpause; extern httrackp* _hts_setopt; extern char** _hts_addurl; extern int _hts_cancel; #endif // //int httpmirror(char* url,int level,httrackp opt); int httpmirror(char* url1,httrackp opt); int filesave(char* adr,int len,char* s); int engine_stats(void); void host_ban(httrackp* opt,lien_url** liens,int ptr,int lien_tot,lien_back* back,int back_max,char** filters,int filter_max,int* filptr,char* host); FILE* filecreate(char* s); int filenote(char* s,filecreate_params* params); HTS_INLINE void usercommand(int exe,char* cmd,char* file); void usercommand_exe(char* cmd,char* file); int structcheck(char* s); HTS_INLINE int fspc(FILE* fp,char* type); char* next_token(char* p,int flag); // char* lirefichier(char* fil); void check_rate(double stat_timestart,int maxrate); // liens int liens_record(char* adr,char* fil,char* save,char* former_adr,char* former_fil,char* codebase); // backing, routines externes int back_fill(lien_back* back,int back_max,httrackp* opt,cache_back* cache,lien_url** liens,int ptr,int numero_passe,int lien_tot); int backlinks_done(lien_url** liens,int lien_tot,int ptr); int back_fillmax(lien_back* back,int back_max,httrackp* opt,cache_back* cache,lien_url** liens,int ptr,int numero_passe,int lien_tot); // cancel file #if HTS_ANALYSTE==2 char* hts_cancel_file(char * s); void hts_cancel_test(void); void hts_cancel_parsing(void); #endif int ask_continue(void); int nombre_digit(int n); // Java int hts_add_file(char* file,int file_position); // Polling #if HTS_POLL HTS_INLINE int check_flot(T_SOC s); HTS_INLINE int check_stdin(void); int read_stdin(char* s,int max); #endif void sig_finish( int code ); // finir et quitter void sig_term( int code ); // quitter #if HTS_WIN void sig_ask( int code ); // demander #else void sig_back( int code ); // ignorer et mettre en backing void sig_ask( int code ); // demander void sig_ignore( int code ); // ignorer signal void sig_doback(int); // mettre en arriΦre plan #endif // Void void voidf(void); #define HTS_TOPINDEX "TOP_INDEX_HTTRACK" #define HTS_DATA_UNKNOWN_HTML "<html>"LF\ "<head>"LF\ "<title>Page not retrieved!</title>"LF\ "</head>"LF\ "<body background=\"backblue.gif\">"LF\ "<h1><strong><u>Oops!...</u></strong></h1>"LF\ "<h3>This page has <font color=\"red\"><em>not</em></font> been retrieved by HTTrack Website Copier. </h3>"LF\ "<script language=\"Javascript\">"LF\ "<!--"LF\ " var loc=document.location.toString();"LF\ " if (loc) {"LF\ " var pos=loc.indexOf('link=');"LF\ " if (pos>0) {"LF\ " document.write('Clic to the link <b>below</b> to go to the online location!<br><a href=\"http://'+loc.substring(pos+5)+'\">http://'+loc.substring(pos+5)+'</a><br>');"LF\ " } else"LF\ " document.write('(no location defined)');"LF\ " }"LF\ "// -->"LF\ "</script>"LF\ "<h6 align=\"right\">Mirror by HTTrack Website Copier</h6>"LF\ "</body>"LF\ "</html>"LF #define HTS_DATA_UNKNOWN_HTML_LEN 0 #define HTS_DATA_ERROR_HTML "<html>"LF\ "<head>"LF\ "<title>Page not retrieved!</title>"LF\ "</head>"LF\ "<body background=\"backblue.gif\">"LF\ "<h1><strong><u>Oops!...</u></strong></h1>"LF\ "<h3>This page has <font color=\"red\"><em>not</em></font> been retrieved by HTTrack Website Copier (%s). </h3>"LF\ "<script language=\"Javascript\">"LF\ "<!--"LF\ " var loc=document.location.toString();"LF\ " if (loc) {"LF\ " var pos=loc.indexOf('link=');"LF\ " if (pos>0) {"LF\ " document.write('Clic to the link <b>below</b> to go to the online location!<br><a href=\"http://'+loc.substring(pos+5)+'\">http://'+loc.substring(pos+5)+'</a><br>');"LF\ " } else"LF\ " document.write('(no location defined)');"LF\ " }"LF\ "// -->"LF\ "</script>"LF\ "<h6 align=\"right\">Mirror by HTTrack Website Copier</h6>"LF\ "</body>"LF\ "</html>"LF // image gif "unknown" #define HTS_DATA_UNKNOWN_GIF "\x47\x49\x46\x38\x39\x61\x20\x0\x20\x0\xf7\xff\x0\xc0\xc0\xc0\xff\x0\x0\xfc\x3\x0\xf8\x6\x0\xf6\x9\x0\xf2\xc\x0\xf0\xf\x0\xf0\xe\x0\xed\x11\x0\xec\x13\x0\xeb\x14\x0\xe9\x15\x0\xe8\x18\x0\xe6\x18\x0\xe5\x1a\x0\xe3\x1c\x0\xe2\x1d\x0\xe1\x1e\x0\xdf\x20\x0\xdd\x23\x0\xdd\x22\x0\xdb\x23\x0\xda\x25\x0\xd9\x25\x0\xd8\x27\x0\xd6\x29\x0\xd5\x2a\x0\xd3\x2c\x0\xd2\x2d\x0"\ "\xd1\x2d\x0\xd0\x2f\x0\xcf\x30\x0\xce\x31\x0\xcb\x34\x0\xcb\x33\x0\xc8\x36\x0\xc5\x3b\x0\xc2\x3c\x0\xc0\x3f\x0\xbc\x43\x0\xba\x45\x0\xb7\x48\x0\xb4\x4c\x0\xb1\x4e\x0\xad\x51\x0\xaa\x55\x0\xa8\x58\x0\xa4\x5a\x0\xa1\x5e\x0\x9f\x60\x0\x99\x66\x0\x96\x68\x0\x93\x6c\x0\x90\x6e\x0\x8d\x72\x0\x8b\x74\x0\x8a\x75\x0\x88\x78\x0\x85\x79\x0\x82\x7d\x0\x7e\x80\x0\x7d\x82\x0\x79"\ "\x86\x0\x77\x88\x0\x73\x8b\x0\x72\x8d\x0\x70\x8e\x0\x6e\x91\x0\x6a\x95\x0\x68\x97\x0\x65\x9a\x0\x63\x9d\x0\x62\x9e\x0\x60\xa0\x0\x5d\xa2\x0\x5c\xa3\x0\x5a\xa5\x0\x57\xa9\x0\x57\xa7\x0\x54\xab\x0\x53\xac\x0\x52\xad\x0\x51\xae\x0\x4f\xb0\x0\x4e\xb1\x0\x4d\xb2\x0\x4c\xb4\x0\x49\xb6\x0\x48\xb8\x0\x46\xba\x0\x45\xbb\x0\x43\xbd\x0\x43\xbc\x0\x40\xbf\x0\x3f\xc0\x0\x3e\xc1"\ "\x0\x3d\xc2\x0\x3a\xc5\x0\x39\xc5\x0\x38\xc7\x0\x37\xc8\x0\x35\xca\x0\x34\xcb\x0\x32\xcc\x0\x31\xce\x0\x30\xd0\x0\x30\xce\x0\x2f\xd1\x0\x2e\xd1\x0\x2c\xd2\x0\x2b\xd4\x0\x2a\xd5\x0\x29\xd6\x0\x27\xd8\x0\x26\xda\x0\x26\xd8\x0\x25\xdb\x0\x24\xdc\x0\x21\xde\x0\x20\xdf\x0\x1f\xe1\x0\x1e\xe1\x0\x1c\xe3\x0\x1b\xe5\x0\x19\xe6\x0\x18\xe7\x0\x15\xeb\x0\x15\xea\x0\x14\xec\x0"\ "\x12\xed\x0\x10\xef\x0\xf\xf0\x0\xd\xf2\x0\xa\xf5\x0\x9\xf6\x0\x7\xf8\x0\x5\xfa\x0\x3\xfb\x0\x1\xfd\x0\x0\xfe\x2\x0\xfb\x4\x0\xf8\x7\x0\xf6\xa\x0\xf3\xd\x0\xee\x12\x0\xaa\x54\x0\xa5\x5a\x0\xa2\x5d\x0\xa0\x60\x0\x9c\x62\x0\x99\x66\x0\x98\x67\x0\x94\x6b\x0\x92\x6d\x0\x91\x6e\x0\x8f\x70\x0\x8c\x74\x0\x8a\x75\x0\x86\x79\x0\x83\x7c\x0\x81\x7e\x0\x7e\x82\x0"\ "\x7b\x83\x0\x79\x87\x0\x76\x8a\x0\x73\x8c\x0\x70\x8f\x0\x6a\x95\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0"\ "\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0"\ "\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x21\xf9\x4\x1\x0\x0\x0\x0\x2c\x0\x0\x0\x0\x20\x0\x20\x0\x40\x8"\ "\xff\x0\x1\x8\x1c\x48\xb0\x60\x82\x7\x16\x3a\x8c\x30\x91\x82\xc5\x8b\x82\x10\x23\xa\xa4\x81\x83\xa0\x92\x27\x56\xb6\x88\x51\x23\xb1\xa3\xc0\x38\x78\xfe\x10\x4a\xe4\xb1\xa4\xc9\x93\x1e\xf\x30\x90\x90\x41\xa2\x8e\x1e\x40\x88\x20\x41\x29\xf1\x4b\x99\x36\x75\xf6\xd0\x8c\xe8\x8\xd2\xce\x92\x94\x2e\x6d\xf2\x14\x8a\xd4\xcf\x92\x1\x4\x14\x58\x10\x1\xc3\x87\x82\x32\x6a\xe4\xe0\x81\x72\xc2\x86\x10"\ "\x1d\x83\x14\x49\xd2\x84\x8a\x96\xa3\x5\xa3\x5c\xe9\x42\x66\x8d\x1c\xb0\x4\xcf\xbc\xb1\xd3\x67\x10\x5a\x82\x80\xa\x29\x6a\xf4\xb6\xee\xce\x48\x93\x2c\x69\xb2\x4b\x50\x54\xa9\x53\x7c\x25\x6\x18\x60\xa0\x1\x5\xd\x22\x4a\xa0\x58\xe1\x22\xc6\xc\x1b\x34\x3\x10\x40\xe0\xa0\x2\x87\x88\x37\x76\xf8\x10\x82\x52\x1\x84\xb\x1e\x3a\xfe\x18\x62\x64\x9\x14\x94\x20\x48\x9c\x50\xd1\x2\x6\xc4\x23\x4c"\ "\xa4\x60\xf1\x12\xd8\xc9\x94\x2c\x60\xcc\xb8\xe1\x5b\x85\x4b\x18\x34\x70\xee\x4\x1e\x93\x66\x4e\x1e\x3f\x81\xd9\xd0\xd1\x13\xc8\x50\x60\x0\x7c\x4\x1d\x5a\xf4\x1c\x0\x22\x46\x8f\xaa\x6b\xdf\xce\xbd\xa3\xa4\x4a\x98\x38\x7d\xb\x7a\x9e\xa9\x13\xa8\x51\xa6\xba\xbf\xd\x8\x0\x3b\xff" #define HTS_DATA_UNKNOWN_GIF_LEN 1070 #define HTS_DATA_BACK_GIF \ "\x47\x49\x46\x38\x39\x61\x80\x0\x80\x0\xf7\x0\x0\xc6\xc6\xc6\xce\xce\xce\xd6\xd6\xd6\xde\xde\xde\xe7\xe7\xe7\xef\xef\xef\xf7\xf7\xf7\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"\ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"\ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"\ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"\ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"\ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"\ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"\ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x0\x0\x0\x0\x80\x0\x80\x0\x0\x8\xfe\x0\x9\x10\x18\x30\x40\xa0"\ "\x41\x81\x5\xe\x26\x34\x68\xa0\x61\xc2\x2\x6\xe\x10\x28\xb0\x10\x21\x45\x8a\xe\x5\x36\x9c\x48\x51\x22\x47\x3\x14\x9\x80\x54\xc8\xf1\x40\x44\x8e\x17\x17\x12\x1c\x20\xa0\x60\x42\x82\x7\x63\x86\x6c\x39\xb0\xa0\x40\x9b\x10\x43\xc6\x24\xa8\xf2\xe6\x4e\x83\x39\x3b\x82\x7c\x18\xb1\x68\x45\x94\x13\x47\xe\x8c\x98\x10\x64\x43\x93\xd\x37\x8e\x74\xd9\x11\xe2\xd0\xa0\x3a\x57\xe\xb8\x18\xd3\x27\x55"\ "\x3\x5a\x5\xdc\xc4\x39\x54\xe9\xcb\x90\x2f\x7\xee\x5c\x68\xf5\x29\x5b\x8d\x7\xa0\x3a\x4c\x49\xf7\xe0\x1\xa2\x51\x87\x22\x34\xb8\x15\xa3\xdb\xba\x21\x6d\xe2\x3c\xba\xd2\x22\xc4\x9a\x85\x6b\x26\x4d\xa9\xf0\x61\x5a\xc1\x8d\xdb\xe\xb5\x69\xf8\x62\x46\xc3\x22\xd5\x22\xcc\x1b\x17\xea\x44\xa0\x18\x27\xde\xbd\xb\x98\xaf\xe6\x89\x94\xb\xe\x16\x9\x56\x2d\x4c\x99\x1b\x81\x22\xdd\xaa\xba\x0\xe5\xca"\ "\x7b\x5f\x87\xbc\x8a\x31\xad\xc5\xdb\x1d\x3b\x73\x3e\x3a\xd4\x64\x53\xde\x3a\x15\x83\x76\x69\x40\xf6\xde\x87\x63\x65\x1e\x6f\xe\x94\x29\x5a\xea\x14\x7\x1f\x5\xda\xd7\xe2\x5c\x91\x15\xb3\xfe\xbb\x7e\x68\x32\xae\xe5\xbb\x7\x7\x38\x15\x8d\xfc\x33\x62\xc5\x8f\xdd\x3b\x46\x6a\xd1\x27\x47\xd0\xa1\x57\xa7\xb7\xbf\xfd\x76\x65\xae\x47\x5\xc6\x92\x66\x5\xc4\x25\x95\x65\xd0\x65\x6\x9e\x64\x5c\xd9\x87"\ "\x18\x64\xb2\x91\x67\xd2\x67\x68\xa1\x36\xdf\x76\x6a\x1d\xe6\xde\x7d\x15\x9a\x26\x1d\x63\x5d\xe9\xe5\x9a\x7b\x27\x2d\xe4\x11\x44\xe8\x21\x55\xe0\x5c\x15\x25\x76\x5a\x57\xf2\x59\x7\x5d\x72\xd2\x81\x66\x63\x8d\xd\x6e\xc8\x61\x87\x1e\x42\xb4\x95\x62\xaa\xb9\x74\x0\x6d\x65\xc1\x55\x56\x73\x5\x82\xf8\xa2\x87\x24\xf1\x88\xd2\x85\x5d\x29\x49\xd2\x7e\x14\xde\xf8\x24\x5a\x81\x29\x87\xa4\x57\x3f\xde\x24"\ "\xd1\x85\x44\xc9\xe5\x58\x5d\x51\xaa\x14\xde\x62\x60\xf1\xd4\x5b\x6f\xce\x75\x5\x19\x82\x58\xde\xb7\x17\x78\xc8\x81\xa8\xd5\x86\x5\xb5\xd4\x65\x9e\xe8\x39\x56\x58\x51\x4\x4c\x8\x60\x8e\x54\xfd\x44\x57\x6b\xd5\xb1\x88\xa1\x69\x3d\x6d\x66\xd9\x55\x36\xe6\x54\xe7\x7d\x90\xb9\xe4\xde\x6a\x36\x9\x30\xa1\xa5\x4\x88\xa5\x9e\x53\x58\x45\xa8\x63\x6e\x51\xb6\x36\x98\x43\x7a\xd9\xe6\x5f\x80\x31\x92\x29"\ "\x65\x52\xfe\x98\xfd\x48\x53\x9e\x3\x5\xa6\x2a\x6b\x97\xa\xb0\x51\x4b\xb6\xe1\xe6\x94\x52\x1b\x86\xd7\x5f\xad\x5\xd2\xb4\x57\x51\xcd\x89\xf8\x9e\xb0\x92\x4a\x44\xdd\x6c\xff\x69\xd4\x14\xa9\x5e\x89\x95\x13\x4c\x30\xd1\xe8\xe5\x1\xd6\xca\xf7\x23\x8a\xc0\x4e\xc9\xd8\xaa\x2d\x2a\x64\xd4\x5b\x3\x75\x8b\xdd\x46\x3\x90\x26\x9f\x4e\x9e\xbe\x56\xa8\x83\x77\x56\xa7\xaa\xa7\x8\x9\x96\x90\x58\x77\x29"\ "\x55\x64\x5e\x4a\xf9\x27\x2d\x5d\xbb\xf5\xca\x69\x6d\xc6\x99\x27\x91\x71\x19\x62\xe4\xd1\x55\x23\x31\xf6\xd8\x80\x9d\x8a\x27\xef\x83\xc0\x75\x4a\x59\x82\x9a\x5\xd0\x59\x5c\xed\x6e\xf5\x2b\xa4\x3a\x8d\xf9\x5c\x6f\x97\x15\x26\xe0\x5f\x48\x59\x6b\x15\xb8\xb6\xd5\x99\x12\x4f\x40\xde\x86\xef\x88\x2\xd1\x94\x15\x5f\xd4\xe1\x24\xc0\xcf\x4f\x5\xbd\x60\x6c\x84\xfe\x77\xde\x83\x73\xbe\xf6\xd9\x90\x55\x1e"\ "\xc7\xde\xcb\x4\x47\xfd\x20\xaf\xe4\xaa\xaa\x5a\xa7\x8b\xbd\xa4\x34\xad\x5\x8\xa0\x35\x75\x48\xba\x85\xeb\x82\x32\x5d\x99\xdd\xcf\x82\x65\xab\x12\x65\x23\xb9\xcc\x18\x92\x4d\x99\xc\x35\x5f\x9c\xd6\x18\x1d\x86\x53\xe1\x44\xb7\xfe\xd7\x9f\x5d\x9d\x15\x54\x63\x22\x88\xd2\xc8\x2d\x12\xd4\x6d\x6e\x3c\xc1\x2d\xd6\x87\x2a\x46\x8d\x55\xe1\x4b\x11\xfb\x2e\x62\xb7\x72\x37\xd1\xe2\x5a\x77\xed\xe3\x4d\x5"\ "\x0\x0\x96\x89\x7d\x3e\x5b\x1a\xa5\x2f\xae\x54\xb9\x72\x4c\xaf\x87\x65\x54\x74\x26\x9\x35\x80\x18\x33\x3a\x67\x74\x4a\x83\xb4\xd2\xcd\xa8\x65\xec\xda\xb3\x49\x45\xbc\x7a\xaa\xfb\xaa\xe7\x13\xa1\x5b\xef\xe5\x91\x7d\x2c\xa9\xe7\x78\x5d\x22\xba\xd8\x57\x56\x5d\x23\x5e\xeb\x9e\xba\x2d\x89\x2e\x55\xbd\x6\x3a\x21\xdc\x46\xc3\x88\x3d\x61\x63\x89\xac\xe1\xdd\x97\x22\xf6\xf3\x8a\x1a\x1e\x66\x30\xe7\xb3"\ "\xb7\x88\x76\xa7\xeb\xd5\xa4\xe7\xc0\x5c\x29\x1d\xd3\xe7\x9f\x46\x2c\x33\x7c\x2f\xce\xb7\x1f\xe6\x8e\x19\xca\xac\x2e\x93\x2e\x3d\x51\x2c\x2a\xd9\x49\xc\xbe\x8\x93\x1a\x9b\x3c\x25\x7c\xf2\xca\x16\x1\xe5\x14\x33\xa\x31\x4c\x70\xbc\x4b\xd\x66\x4e\x76\x39\xd3\x9\x84\x69\xb9\x23\x49\xda\x58\x32\x15\xa1\xf4\xc\x73\x6d\xb2\x8d\xaa\xb0\x53\x9e\x6\x9a\xce\x7e\x30\xa2\x50\xbb\xd6\x65\x96\x50\x61\xe8"\ "\x2b\x68\xa1\xcd\xf4\x3a\xb5\x38\x1d\xf9\xd\x63\xfe\x3\xa\x80\xf9\xae\x44\x41\x22\xa6\xc5\x2a\x15\xb\x98\x8b\x1a\x23\x30\xfa\x6c\x9\x81\xbd\x2b\x1b\x93\xac\x46\x20\xdb\x2c\x8e\x6d\x3e\xaa\xd7\x7e\x12\x63\x30\x4f\x5\x2d\x3b\x29\xb9\x4c\x83\x60\xc2\xab\xc2\x25\xaf\x6e\x6f\x99\xf\xb0\xf4\x87\x40\x1a\x39\xc9\x41\x23\x12\xb\x58\x84\x28\xad\x7\xf2\xad\x2b\x3f\x4b\x97\xe1\x82\xf7\x2d\xac\xf5\xab"\ "\x29\xe5\x79\x4b\xda\x8c\x85\xb8\x96\x18\x4b\x6f\xfc\x21\xa\x43\xfc\xc5\xba\xd9\xd5\xe7\x27\xb2\x31\x0\x21\x1\xb8\xa2\x25\xfa\xc4\x80\x86\xab\xc9\x7c\xc8\x58\x20\xe1\x1c\x8f\x45\xad\x51\x61\xd2\xae\xd6\xc4\xe5\x85\x67\x23\xe\x93\x93\x23\x21\x79\x1a\xab\x15\x44\x88\x45\x4a\x57\x66\x82\x74\x1b\x5a\xc2\x24\x23\xb4\xec\x54\x0\xae\x28\xcb\xe3\xb0\xa5\x43\xc9\xd3\x64\x7a\xce\x44\x44\xf1\xed\x86\x77"\ "\x86\xb1\x5f\x8e\x68\xa7\x1a\x3d\xc5\x6f\x84\x10\x54\x59\xf2\x82\x13\x4d\x5\x1d\x85\x57\xc1\xea\x48\x97\x30\x7\x21\xd\x56\x68\x50\x6d\x61\xcd\x32\x17\xd5\xc3\x2a\x6d\xc9\x42\x8e\x12\x49\x0\x4\xe6\x1b\x82\x44\x24\x45\xd4\xb\x96\x69\xf6\x98\x21\xdf\x89\x72\x20\x42\xfe\xa4\x4d\x96\x56\x23\xac\xcf\x44\x85\x34\xdf\x71\x52\x90\xe8\xc6\x97\xec\x9\x86\x6f\x31\x53\xd6\xa1\xc0\x6\x1e\xca\xf4\x2b\x68"\ "\x6a\x6a\xd0\xfa\xba\xa3\x10\xd\x92\x72\x2c\x6e\xa4\x50\xe0\x50\xf9\xb8\x92\x31\x9\x86\x7d\xbc\x48\xb6\xc4\x49\x2f\x7b\x8d\xcb\x6b\x6\x2\xe4\x3b\xfd\x42\x9a\xec\xf1\x2a\x0\x66\xc9\x64\x15\x7b\x14\xa1\x30\x4a\xab\x31\xf6\x8c\xd3\x92\x42\xd4\xd0\xf7\x18\xce\x25\x17\x53\xcb\x55\xc4\xc4\x94\x86\x49\x2c\x27\x77\xc9\xd4\x8f\x6c\x37\xbd\xba\x99\xc5\x2b\xd9\x3b\x65\x68\x18\x57\x25\xf9\xf8\x90\x87\x85"\ "\xc1\xc9\x9d\xf6\x64\x18\x7f\xcd\x6c\x7e\xea\x6b\x88\x4c\x41\x83\x1e\x2c\x36\x6a\x5f\xe6\x9a\x56\x74\x7e\x52\x10\xde\x58\x29\x86\x31\x31\x96\xd5\xf0\x85\xad\x7\xb5\xe8\x5a\xef\x29\xdd\x95\x78\xd7\xa8\xfa\x78\x4d\xa7\xdf\x2\xaa\xe6\xe8\xa3\xa7\x45\x21\x4c\x8a\xdb\x59\x94\xc6\xe\x49\xb3\xc\xa5\x47\x8e\x9a\x9b\x98\xfd\x9e\x47\x4c\x1f\x72\x11\x5d\xda\x1a\x55\x82\x12\xd8\xbf\x6c\xc6\xa9\x8c\x7d\xd1"\ "\x4d\x3\xfb\x46\x91\xc2\xa\x68\x9e\x51\xd1\xd7\x56\x9\x24\x2a\xc3\x6e\xc\x50\xe2\x29\xfe\xd3\xad\x66\x74\x11\xdc\x41\xf2\x75\xd1\x1\x16\x29\x2d\x1a\x41\x37\x8d\xa5\x25\xe6\x11\xde\xad\xae\x36\xca\x9d\xaa\x6d\x21\x34\x8c\x6d\x36\xdb\x86\xc2\x9d\xad\x4d\x3a\x4b\x35\x94\x40\x75\xc7\xd5\x26\x19\x44\x8e\x9f\x5b\xa6\x46\xab\xa9\xb1\x5a\x9e\xec\x51\xf4\xe2\x9\x40\xf\xf3\x2d\x15\x36\xf1\xa6\xa1\x81"\ "\xa2\xd1\x16\x45\xa3\x3c\xe9\x67\x31\x4\xa0\xe3\x2f\xc1\xf4\xac\xba\x16\x50\x8b\x56\x9a\xaa\x56\x74\x98\xc5\x3f\x82\xd1\x7b\xac\x2d\x6f\xad\x26\x4\xad\xec\x3d\x32\x2b\xf8\x95\xd3\x2d\xb1\xb3\xd1\xa7\xca\x6\x5b\x5c\xec\x1b\xa3\x4\x44\xdc\xc1\x8d\xb4\x2a\x6b\x55\xdf\x43\xb4\xe3\x28\x91\xea\xf5\x2c\x32\xbc\xc9\xfc\x2c\xb5\x61\xf8\xd6\xc7\x61\x61\x43\xa2\xd6\x4e\x2c\xcb\xbd\xc8\xd5\xa3\xca\xd1\x24"\ "\xdc\x36\x46\x44\xc7\x6\xee\x3a\x19\x19\x16\x95\xb8\x34\xd0\xaa\xa6\x73\x4e\x9d\x84\xdb\x64\x92\x16\xe3\x20\x61\x92\x26\x24\xb\x52\x9c\x62\x13\x99\x41\xe1\x87\x60\xef\xc4\x4e\x2b\x6b\x85\x1a\x2a\x47\xe9\x91\x91\xbc\xd0\xb9\x76\x36\x4f\xdd\x3c\x37\x98\x2a\xf3\x5d\xc5\x28\xeb\x27\x7\x1a\x47\x46\x84\x4b\xd2\xfe\x93\x40\x2\xb8\x81\x79\x56\x24\xf3\x4b\xf\x70\x3a\x84\x97\x93\x38\x27\x8b\x9\xaa\xab"\ "\xd6\x8e\x9c\xb6\xaa\x2e\x8e\x37\xe\x11\x99\x81\xfe\xf9\x4f\x9d\x8a\xb4\x93\x9\x31\xce\x11\x93\xe2\xb5\x2e\x29\x37\x7c\x55\x56\x11\xaa\xc\xc4\x5a\x20\x63\x4d\xa2\x53\xcb\x2a\x84\x7b\xb7\x1b\xb9\x7c\x11\xd1\x39\x76\x60\x4f\x49\xcc\x14\x60\x19\x87\xb2\x3e\xd6\x60\xd3\x1a\x63\x2f\x94\xa8\x5a\x95\xd\xdb\xf1\x19\xf7\xeb\xc0\x7d\x6d\xaa\x3c\xa4\x31\x50\x9f\xe6\x4b\xc5\xe4\x24\x3a\x90\xbe\x31\xa\x78"\ "\xa6\xd4\x25\xdc\x30\xca\x3f\x93\xcd\x6b\x2f\x9b\x78\xa7\x76\x52\xa8\x39\xfe\xfd\x14\x9b\x82\xbc\x5d\xbd\x95\x38\x60\x9e\x64\x9a\x58\x78\x35\x68\x5b\x8d\x6a\x3f\x33\x79\xde\xf0\x96\x54\x9b\xd\x3e\x27\xc6\x4f\x61\x98\xa5\xfd\xc9\x21\x80\xb5\x14\x3a\x75\xa5\xd\xad\x9c\x12\x48\x3b\x1b\xf2\x47\x5b\x49\x18\xf8\x46\xe4\xe8\x9c\xe0\xe9\xa0\xb6\x7c\x89\xce\x66\x3a\x2b\x7\xd\xba\x2c\x1c\xf3\x4b\xd0\x64"\ "\x64\x27\xac\x39\xfa\x58\x6c\x46\x6e\xf4\x34\x23\x98\x88\xcf\xb2\x36\xa5\xbc\xb1\x66\xf2\x98\x33\xff\x94\x93\xa0\x7a\x74\x4e\x5b\xfe\x4d\x22\x32\x19\xa2\xb8\x48\xd7\x49\x60\x75\xc9\xb2\xa6\x8e\xe4\x8e\xa2\x64\x51\x50\x9a\x90\x97\xb3\x10\xc6\x15\x21\x79\xc4\x9d\x8e\xc5\x63\xe0\x83\xb8\xd5\x37\xb\x45\x19\x1d\x61\xae\x45\x5e\xbb\xee\x38\x1b\xb3\xd4\x4a\x3c\xc6\xf0\xa9\xc4\x4b\x69\x42\x14\x64\xa0\x30"\ "\xc9\x6c\x8c\xd6\xbc\x6e\xb1\xa2\xe9\x47\xd8\x62\x20\x9e\x50\xa5\x99\x15\x7e\x1c\xa9\xa1\x42\xb1\xff\x9\x20\x0\xc1\xf1\x4c\x4d\xd6\xa9\x36\xfb\xa\x89\x5b\xe4\xde\xc\xbe\x93\x2\x70\xef\x64\xb6\x6c\x12\xad\x1f\xcd\xf5\x1c\x9a\x8a\x20\x27\x65\x5e\xff\xed\xe5\xe8\x14\x11\x4d\x3f\xae\xe9\x33\xa7\xf2\xda\x38\x2e\x54\x53\x95\x13\x2b\x7a\x39\x6f\x7e\xf2\xdd\xa7\xd3\xbc\x29\xef\x63\x72\x48\x5c\x1c\x5b"\ "\x4b\x96\x8c\x18\x5c\xea\x96\x51\x3d\x11\x52\x56\xb7\xa9\x6c\x56\x89\x53\xf3\xcb\xe8\x43\x61\x71\x95\xac\x3c\x23\x91\x32\x5c\x4d\x9c\x94\x84\x35\x47\x9a\x13\x59\x67\xe9\xd4\xf3\xb1\x52\x7b\xc6\x64\xda\x4b\x13\x99\xb3\xa\xa4\xa0\xa4\x5e\xb1\x31\xce\xdd\x57\xad\x23\xa8\xf0\xac\xea\xdc\x83\x8b\xd8\xa8\xca\x7e\xb0\xeb\xe8\xba\x59\xbb\xfe\xe0\x49\x50\xfe\x2f\x5a\xba\x89\xc\x55\xa0\x5a\x8e\xd6\x8a\x47"\ "\xa9\xe8\xe9\x7a\x52\xeb\x6\x72\xcb\x19\x8c\x1a\x4f\xed\x72\x6f\x12\x7d\xe7\x5f\x75\xa2\xe8\x4e\xaa\xfb\xa2\x36\xf3\x63\xcc\x16\x46\x67\xd7\xfc\xb4\xd9\x39\xa1\x2b\xe6\xd7\x6d\xa1\xc2\x5a\x39\x42\x14\x4e\xb6\x61\xd4\xf7\x70\xa4\x53\x14\x14\x75\x24\xc2\x1\x1d\x54\x23\x1e\x72\xc5\x7b\x7\x67\x19\x6e\x42\x6b\x60\x95\x5a\x24\x72\x7d\xda\xd5\x24\xf3\xb5\x52\xc\xb1\x36\xfb\xa5\x11\xc5\x16\x49\x66\x1"\ "\x16\x6d\x23\x68\x92\x44\x81\xc1\x4\x41\x1a\x91\x2a\x3d\xc3\x56\x9a\xf6\x15\xec\xd7\x3b\x94\x36\x3e\x30\xc2\x15\x11\x63\x1e\xe\x32\x7e\xd5\x53\x37\xc0\x81\x4b\xa7\x63\x66\xe1\x52\x65\x2c\xb1\x62\x83\xc6\x10\x3f\x88\x34\xc9\x33\x70\x44\x43\x20\x0\x3\x6b\x38\x75\x28\xce\x46\x50\xe5\xf6\x5e\x21\xe2\x2e\xa6\x71\x45\x33\xa4\x21\xf1\x42\x71\x89\x23\x46\x59\x94\x4b\x0\x77\x5c\x49\x65\x59\xf9\x76\x4e"\ "\x1f\x22\x31\x13\xa4\x57\x49\x18\x67\xab\x24\x3c\x81\xf2\x5c\x15\xe1\x4c\x5f\xf2\x13\x87\xd4\x3b\x62\xb4\x77\x61\x61\x3a\xe0\x75\x10\xef\xd3\x78\x30\xf6\x2e\x61\x14\x79\xfe\x53\xe2\x35\x3d\x54\x76\xb0\x83\x84\x81\x32\x19\x19\x43\x42\x43\x2\x84\x6a\xf5\x82\x51\x94\x2f\x7b\x82\x49\xf0\x61\x53\x5b\xa3\x32\x17\x24\x5b\x6b\xa2\x5b\xb2\x26\x2b\x8a\x97\x79\x5e\xf6\x7b\xdd\x44\x7a\x95\xa2\x32\xfe\xd7\x78"\ "\x97\xc2\x29\xe4\xc5\x39\x50\x23\x8a\x62\xd8\x1e\x3b\xf8\x28\x1\x3\x69\x6\x63\x2a\x1c\x66\x25\x7d\xd1\x2f\x19\x18\x83\x59\x38\x4c\x62\xa8\x2b\x4c\xb6\x7b\x4a\x16\x1c\x6e\x15\x3e\x84\x34\x33\xc5\x46\x62\xb3\x28\x7c\x18\x57\x31\xb9\x23\x57\xa0\x68\x26\x6c\x36\x4f\xbd\x42\x72\xcc\x41\x3b\xad\x88\x48\x3b\xc6\x1f\xe8\xc1\x3b\x1e\xb1\x5a\x7e\x73\x7b\x54\x42\x31\x62\x87\x35\x8d\xb6\x60\x8c\xa5\x56\x4f"\ "\x42\x22\xac\xd1\x2e\x57\x26\x12\x2d\x25\x61\x8e\x38\x3c\x77\x57\x1b\x2e\x33\x24\x10\xe6\x8c\xf2\x53\x61\x97\xb2\x62\xe\x72\x15\xbc\x4\x54\x10\xf6\x62\x45\x84\x25\x40\xf5\x25\x69\x12\x3d\xc8\x65\x1e\x36\xc5\x86\x2f\x12\x2e\x85\x2\x27\x9a\x88\x60\x31\x44\x62\x89\xa1\x34\x7e\x81\x57\x14\xc3\x8f\xae\x74\x60\xf8\x21\x72\x87\xd1\x10\x74\xe4\x1e\x1f\x33\x28\xbd\x7\x7b\x51\xe6\x3f\xef\xc4\xfe\x30\xab"\ "\x58\x2b\xd4\x41\x75\x70\x34\x50\x1e\x19\x8a\x3e\x32\x92\xdd\x42\x45\x14\x4\x4e\xb1\xb5\x15\x7c\x73\x6a\xa\xd1\x92\x2b\x9\x4a\x80\x3\x30\xb5\xc5\x29\x48\xb6\x38\x29\xc9\x2e\x34\x27\x45\xb3\x27\x19\xaf\xc8\x3e\x56\x87\x1b\xdf\x84\x11\x74\xd5\x16\xc7\x73\x1e\x69\x78\x51\x29\x7\x2a\xab\x67\x95\x70\x77\x5a\x30\x41\x69\xc9\xa7\x78\x99\x12\x69\xbc\x96\x87\xe5\x33\x75\x7d\x83\x3d\x6f\x6\x1d\x48\x22"\ "\x94\x75\xe8\x16\xc2\x95\x41\x4d\xc5\x21\xf6\xe8\x64\x30\xc1\x76\xd5\xc1\x6f\xa6\x27\x13\x58\x17\x72\x76\x63\x8f\x22\xe1\x12\x2d\x81\x3f\x5e\x31\x95\x64\xf2\x22\xfd\x12\x5c\x99\x1\x63\x3d\x6\x1e\xf\xf5\x4b\xfe\xd7\x68\x8b\x1\x8b\x9b\x71\x8b\x96\x93\x2e\x40\x28\x69\xf5\x85\x35\x1a\x23\x61\x8d\x22\x97\x4\x3\x69\x8b\xb1\x79\x37\xc1\x57\x91\x56\x31\x1a\x86\x88\x3b\x44\x33\x28\x55\x88\x59\x52\x69"\ "\x71\x39\x52\x4\xc5\x83\x8b\x37\x10\x12\x31\x52\xc7\xa5\x24\xa9\xb9\x4a\x2f\xa3\x64\x93\x69\x11\x61\x78\x2c\x75\xf1\x53\xf9\x32\x23\x34\x77\x9b\xea\x17\x8e\xe0\x36\x99\x33\x68\x23\xa1\x65\x40\x98\xa1\x71\x84\xfe\xe1\x6b\x77\x91\x92\xf4\x51\x55\x19\x83\x2a\x2b\x6\x34\xce\x7\x9d\x53\x52\x65\xbd\x12\x20\x2\xa7\x15\xf1\x67\x45\xfc\xd1\x56\x24\xb8\x5e\xe3\xc4\x69\x63\x2\x77\x88\xb4\x2e\x7c\xd1\x8c"\ "\x41\x61\x3b\x79\x64\x19\x1e\x44\x37\xb1\xd8\x26\xfc\xf4\x96\x8e\xc5\x10\xce\xc2\x26\x1a\x75\x2f\x55\x24\x35\x6e\x82\x42\x23\x1\x77\xf8\x8\x37\x9b\xe3\x70\xb0\xd8\x1d\xd3\x24\x94\xd8\x34\x2c\xe8\x38\x90\xc0\xb4\x55\xd8\x42\x1c\x3f\x32\x8e\xbe\x16\x3b\x58\x79\x80\x33\x67\x6d\x5\x22\x42\xa8\xe1\x83\x3c\x86\x58\x2a\x94\x16\xb3\x92\x39\xb7\xe8\x3f\x1a\x19\x43\x59\xe2\x49\xfb\x81\x2c\xd2\x38\xa0\x90"\ "\xc3\x15\x7a\xa2\x2b\xfe\x78\x22\x25\xf6\x7d\x95\x52\x9a\x81\xb9\x48\x72\x28\x42\xf\xc7\x31\xf1\xa8\x9a\x9\x18\x5f\x87\x31\x1a\xfb\x99\x17\x22\xe5\x91\x3b\x58\x19\xb5\x91\x1d\x30\x95\x5d\x84\xf1\x6e\x3d\x43\x63\xe8\xd2\x50\x18\x32\x9f\xfd\x3\x22\x1\x22\x66\xd\x82\x40\x6d\x54\x43\x4d\x31\x77\xd3\xe7\x73\xb\x71\x47\xbf\xc9\x82\xb5\xb4\x70\xd\x52\x58\xcf\x26\x71\xaf\xd9\x4b\xdc\xe3\x6f\x1f\xb8"\ "\x5d\x93\x89\x61\x61\xf4\x38\xfe\xdf\x6\x55\xd2\x53\x73\x8\x68\x1f\x20\xf4\x3c\x88\x22\x29\x56\x31\x1a\xd7\x75\x69\x9a\xf1\x2b\xc7\x69\x60\xf0\xf9\x73\x60\x72\x92\x33\xb5\x7a\x5c\x37\x2d\x8d\xe8\x73\x99\x24\x30\xc4\xa5\x48\xbf\x34\x20\x8a\x4\x16\xbf\xc7\x1a\xdd\xd6\x98\xb2\xe6\x26\x5d\xa3\x26\xfb\xe3\x9c\xbb\x21\x1a\x16\xc2\x57\x7d\x37\x72\x90\x22\x61\x92\x47\x71\x3e\xb7\x3d\xba\x32\xa3\x9b\xc7"\ "\x16\xb\x7\x89\x60\x8a\x33\xc4\x5\x96\xa6\x64\x23\xe2\x49\x87\xf\x29\x3c\x2b\xf5\x28\x58\xc2\x65\xb7\x25\x86\x42\x1\x42\xe5\xb8\xa0\x5b\x22\x68\x1e\x45\x89\xde\x92\x57\x81\x25\x39\x2d\x7\x65\xcb\xb9\x4c\x6b\x8\x5b\x6b\xb2\x19\xc2\xc6\x79\x90\x54\x28\x62\xe5\x27\xa5\xc9\xa8\xa2\xd4\x66\xba\x81\x4c\xab\x35\x62\xb8\x29\xac\x9\x8a\x32\x59\xf3\x75\x10\x92\x6e\x93\xc2\x20\x1f\xb9\x13\x5e\xf7\x5a"\ "\x3e\xa2\x82\x12\xb1\x40\x9c\xc6\x82\x91\x76\x33\x3b\x13\x67\x6e\xa\x43\x83\xa\xad\xca\xc8\x11\x9e\x2\x9d\xca\x3\x33\x98\xd9\x97\x8e\x23\x62\x40\x45\x3b\xe4\x61\x10\xfe\x8\x21\x4b\x93\xb1\x5\xd7\x73\x9e\x77\x31\xed\x88\x8f\xd1\xc7\x95\x4a\xb1\xfe\x79\x2e\x82\x44\x14\xf5\x91\x66\x22\x35\x33\x22\x32\xfa\xe2\x85\xa2\xd4\x72\xd3\xa9\x8a\xb5\xf4\x74\x3d\x96\x4b\x6b\xf5\xa1\x26\x5\x31\xae\x43\x10"\ "\xc7\x3\x9b\x55\xf6\x71\xfb\xb9\x1f\x27\x52\x87\x69\x14\x28\xe\x57\xa0\xcc\x92\x59\x14\x25\x99\x1\x59\x82\x96\xba\x44\x53\x15\xad\x12\x2a\x96\xac\xc4\x6f\x23\x12\x40\xa5\x96\x72\xdf\x73\x3d\xe5\x72\x3f\x80\x16\x11\xf7\x36\x2f\x45\xb5\x39\xb4\x16\xb3\x25\x58\x94\x99\x37\x55\x75\xa4\x5c\x60\x34\xb0\x10\xe6\x65\x2a\x46\x65\xfc\x14\x5d\x6d\x5a\x87\x58\xe8\xb5\x76\x81\x76\xe2\x92\xab\xb1\x53\x10\x9b"\ "\x62\x89\x3c\x3\x5e\xee\xd4\x38\xb9\x28\x6f\x30\x24\x2a\x28\x21\x91\x30\x79\x9c\xba\x41\x47\x87\xc3\x3e\xab\x67\x3a\xa4\x41\x33\x5c\x27\x7c\x9e\x82\x9d\x70\xb1\x67\xbd\xe5\x1d\x5e\x95\x58\x3a\xf1\x39\xb3\x53\x82\xe2\xb3\x20\x94\xb\x3d\x87\x6a\x1b\x12\x21\x5f\xe3\xc4\x86\xe4\x1\x4b\x6c\x83\x2b\x83\x71\x59\xe0\x22\x87\xca\x94\xa2\xef\x66\x95\x1b\xa4\x4c\xe3\x76\x6e\xa\xe7\x17\xf6\xa1\x88\xca\xd1"\ "\xb1\x2c\x46\x29\x3d\x2b\x56\x78\x2a\xac\xe4\xe1\x1b\xb0\x2\x28\x5b\xfe\xb7\x9d\xea\xa3\x51\x86\x6b\xa6\x72\x9\x47\x1c\x52\x1e\xc3\xb6\x29\x96\x97\x81\x6a\xc4\x66\x13\x54\x4e\x7\x0\x0\x24\xd9\x17\x28\x35\x4c\xe\x33\x46\x55\xc2\x72\x6c\xb1\x54\x72\x83\x9c\x21\xa2\x72\x60\x49\x52\x33\xc3\x11\x49\x78\xa5\xda\xc1\x52\xf0\xc6\x3e\x41\x73\xa0\xe7\x64\x26\x69\xd5\x46\x8d\xd1\xb4\xe\x89\x46\xff\x45"\ "\xa0\xac\x56\x3f\xca\xc4\xa5\xb5\x45\x8d\xf5\x91\x1a\x53\xab\x5e\x9c\x23\x22\x5b\xe2\x6c\x85\xb2\x31\x61\x94\x22\xe8\x5\x35\x20\x5\x5d\xaa\xb2\xb9\x8a\x7\x6e\x38\x6\x1d\xf6\x69\xa5\xd0\x14\x23\x62\x9\xc1\x5d\xd2\x48\xf8\x36\x77\xe5\x62\x32\x8d\x94\x12\xe0\x8b\x38\xd0\x59\x32\x17\x8b\x2c\x67\xbb\xa0\xb\x35\x6c\x19\xd4\x57\xf6\xf5\x11\x75\x22\x7d\x59\x72\x92\x34\x66\x9a\x53\xb6\x5d\x78\x81\x9e"\ "\xb9\x22\xa9\x19\x1c\x65\x46\xd1\x3c\xde\x2b\x31\x24\x17\x33\x47\x14\xc3\x68\x55\x53\x35\xa4\x22\x14\xd7\x1b\xc7\xaa\xa2\x69\x39\x77\xf9\x66\x21\xf0\xd6\x8d\xfa\x29\x6c\x2b\x82\x70\xde\xd7\x4a\x8e\x11\x17\x7c\xf3\xab\xcb\x42\x1f\x1e\xec\x6b\x12\xf3\x8d\x49\xb1\x4e\xee\x19\x84\x55\x87\xb6\xfe\x6e\x7b\x4b\x2a\xf4\x57\x56\x95\x98\xe8\x7a\x88\x8f\x8b\x5a\xf9\xe6\x3a\x1a\xc1\xab\x44\x66\x77\x4f\x46\x8b"\ "\x7d\x94\xbe\x7\xab\x9b\x88\x1a\xa6\xd\x73\x7b\x95\x32\xa4\x8e\xdc\x55\xa9\x9\xb0\xc2\x6b\xb4\xf3\x28\x3a\x20\xd6\x37\x99\x8b\xa0\xe9\x79\xab\xfc\x4b\x62\x77\xa1\x2b\xae\x8c\x51\x8d\xc5\xaa\x8e\xc2\x7c\x49\xa2\xba\x63\xd6\xbf\x47\x84\xa6\x45\x29\xa1\x71\x69\xba\x44\x7b\x5d\x9c\x65\x80\xc8\x24\x38\x78\x52\x53\x3d\xb4\x9e\xec\x93\x2d\x63\x5\xb5\x62\x29\x9e\x68\x29\x87\xd2\x9b\xbd\xf0\xa5\x28\xc9"\ "\x51\x46\x80\x2\x36\x76\x28\x63\x81\x68\x36\xea\xc9\x7a\x79\xd3\x99\x79\x42\xbd\x9c\x53\x6b\x79\x17\xa8\x71\x3\x32\x5a\x75\x62\xdd\x51\x21\x2d\x5\x3c\x45\x79\x99\x1e\x6\x49\xe6\x5b\x92\xc2\xa9\x17\xbf\x77\x7b\x21\x38\x20\x3f\xdb\x98\x4c\xaa\x23\x71\x63\x8c\x49\x65\x35\x34\x1a\x39\x75\xbb\xa6\x48\x61\x67\xa4\x95\x26\x2e\xa3\x49\x2b\xd2\x86\x35\x75\x1e\x62\xab\x3c\x88\x69\xa1\x25\x59\x50\xfc\x7b"\ "\x67\x33\x3\x2c\x2\x77\xc2\xde\x6\x4e\x39\x66\x8f\xc5\xd1\x48\x88\xea\xaa\x6a\x96\xaf\xa8\xdb\x77\x9e\x7a\xfe\x26\xa5\x65\x88\x93\x13\x69\x4b\xec\x77\x23\x68\x4b\x5e\x7\x25\x79\x2c\x22\x0\x82\x96\x27\x11\x32\x91\x41\x27\xf2\xd9\x64\x55\x91\xad\x1\x3c\x13\x37\xe2\x41\xf1\x79\x65\xee\xca\x91\x5c\x24\x6e\x51\x45\x5b\x3c\x87\x62\x19\xeb\x64\x34\x99\xa2\x95\x41\x32\xf1\x28\x29\xf7\x31\x89\xc2\x3a"\ "\xc3\x34\x99\xa7\xa\x2\x8a\x5\xbc\xce\x5b\x59\xc1\xca\x66\x85\xd1\xe7\x80\x59\x53\x32\x7d\x87\xd0\x89\xe2\x24\x28\x13\x3f\xcf\x95\x34\xc1\xe3\x9b\x62\x9c\x22\xea\x19\x37\x7\x38\x9e\x91\x91\x74\x73\x56\x3f\x9d\x66\x4f\x3b\x72\x88\x14\x66\x85\x64\xd2\xc3\xc\x56\x39\x6b\x53\xc2\x26\x35\xa1\xd4\x8b\x79\xd7\xa3\xb7\xa7\x95\x7c\xd8\xc3\x54\x7d\x3d\xb5\xe2\xaa\xd2\x5b\xd7\xc8\x56\x85\x4a\x10\xf3\xb3"\ "\x17\x99\xd8\x26\xcb\x6a\x15\xad\x47\x60\x5a\x9d\x19\x73\x11\xea\x56\x4f\xd6\x9b\x4e\x64\xbd\x59\x82\x1d\x36\x1d\x16\xcf\x38\xd3\x4f\x28\xf3\x81\xcc\xd2\x64\x9d\x8c\x70\x7d\xc5\xda\xbc\xe1\xb9\x51\xe6\xd3\xb8\x85\xc7\xe1\x1a\x5b\xea\x85\x5c\xfe\xc7\xd8\xda\x95\x9e\x9e\x85\xca\xc9\x91\xa5\xb8\x25\xb2\xe6\x14\xa6\xa6\x4d\x60\x53\xe7\x7d\xda\x63\x33\x38\x91\xf1\x2b\x6f\x3\xb8\x3e\xdd\xa4\xde\xcb\x38"\ "\x74\x2b\xb0\xa7\xa2\x24\xc4\xc5\xcb\x8\x6a\x41\xc9\x82\x20\x54\xca\x18\xee\x62\x53\x9c\x43\x80\x77\x8d\x88\xc0\x83\x7e\xe9\xf8\x1f\xb9\x88\x38\xdf\xb2\x8c\x4c\x82\xd9\x7e\x6a\x2e\x47\x72\xbc\xfd\x7d\xbd\x68\x62\x50\x80\x43\x26\x2c\x52\xb1\x42\x86\xc7\xf9\xd2\x26\x68\x22\xc3\xfe\x53\xb6\x86\x75\x6e\xf1\x9d\x39\x9d\x44\x52\x55\x3c\xbd\xf8\xc1\x1b\x24\x97\x2f\x3e\x88\xa9\x75\xe8\x4e\x24\x53\x59\xd6"\ "\x73\x62\x66\xfd\x8c\xff\xfb\xc6\xb2\xa3\xa6\xe0\x68\x18\x67\xc6\x22\x72\xd2\x46\x18\x8b\xbc\x41\x91\x52\xdf\x5d\x15\x71\xf3\x9d\x52\x74\x31\x1e\x1d\xb2\xc2\x7\xc8\xce\xfb\xaa\xf5\x24\x6e\xdd\xfd\xa8\x62\x2\x18\x8\xa8\x70\xa8\xc4\x30\x10\x23\x46\xaf\x11\x15\xbf\xca\x3a\x3d\x21\xaa\x16\xdd\x61\xca\xf1\x71\xc7\x52\x56\xce\xf7\x7c\xc8\x67\x99\x43\xbe\xb1\x2f\x43\x6f\x1f\x1c\x56\x5b\x56\x50\x6d\x8d"\ "\x5b\x24\x2a\x90\x4\xbb\xbc\x54\xa2\xdc\x3e\x11\x10\x0\x0\x3b\xff" #define HTS_DATA_BACK_GIF_LEN 5616 #define HTS_DATA_FADE_GIF \ "\x47\x49\x46\x38\x39\x61\x8\x0\x8\x0\xf7\x0\x0\x0\x0\x0\x0\x0\x33\x0\x0\x66\x0\x0\x99\x0\x0\xcc\x0\x0\xff\x0\x33\x0\x0\x33\x33\x0\x33\x66\x0\x33\x99\x0\x33\xcc\x0\x33\xff\x0\x66\x0\x0\x66\x33\x0\x66\x66\x0\x66\x99\x0\x66\xcc\x0\x66\xff\x0\x99\x0\x0\x99\x33\x0\x99\x66\x0\x99\x99\x0\x99\xcc\x0\x99\xff\x0\xcc\x0\x0\xcc\x33\x0\xcc\x66\x0\xcc\x99\x0\xcc\xcc"\ "\x0\xcc\xff\x0\xff\x0\x0\xff\x33\x0\xff\x66\x0\xff\x99\x0\xff\xcc\x0\xff\xff\x33\x0\x0\x33\x0\x33\x33\x0\x66\x33\x0\x99\x33\x0\xcc\x33\x0\xff\x33\x33\x0\x33\x33\x33\x33\x33\x66\x33\x33\x99\x33\x33\xcc\x33\x33\xff\x33\x66\x0\x33\x66\x33\x33\x66\x66\x33\x66\x99\x33\x66\xcc\x33\x66\xff\x33\x99\x0\x33\x99\x33\x33\x99\x66\x33\x99\x99\x33\x99\xcc\x33\x99\xff\x33\xcc\x0\x33\xcc\x33\x33"\ "\xcc\x66\x33\xcc\x99\x33\xcc\xcc\x33\xcc\xff\x33\xff\x0\x33\xff\x33\x33\xff\x66\x33\xff\x99\x33\xff\xcc\x33\xff\xff\x66\x0\x0\x66\x0\x33\x66\x0\x66\x66\x0\x99\x66\x0\xcc\x66\x0\xff\x66\x33\x0\x66\x33\x33\x66\x33\x66\x66\x33\x99\x66\x33\xcc\x66\x33\xff\x66\x66\x0\x66\x66\x33\x66\x66\x66\x66\x66\x99\x66\x66\xcc\x66\x66\xff\x66\x99\x0\x66\x99\x33\x66\x99\x66\x66\x99\x99\x66\x99\xcc\x66\x99"\ "\xff\x66\xcc\x0\x66\xcc\x33\x66\xcc\x66\x66\xcc\x99\x66\xcc\xcc\x66\xcc\xff\x66\xff\x0\x66\xff\x33\x66\xff\x66\x66\xff\x99\x66\xff\xcc\x66\xff\xff\x99\x0\x0\x99\x0\x33\x99\x0\x66\x99\x0\x99\x99\x0\xcc\x99\x0\xff\x99\x33\x0\x99\x33\x33\x99\x33\x66\x99\x33\x99\x99\x33\xcc\x99\x33\xff\x99\x66\x0\x99\x66\x33\x99\x66\x66\x99\x66\x99\x99\x66\xcc\x99\x66\xff\x99\x99\x0\x99\x99\x33\x99\x99\x66"\ "\x99\x99\x99\x99\x99\xcc\x99\x99\xff\x99\xcc\x0\x99\xcc\x33\x99\xcc\x66\x99\xcc\x99\x99\xcc\xcc\x99\xcc\xff\x99\xff\x0\x99\xff\x33\x99\xff\x66\x99\xff\x99\x99\xff\xcc\x99\xff\xff\xcc\x0\x0\xcc\x0\x33\xcc\x0\x66\xcc\x0\x99\xcc\x0\xcc\xcc\x0\xff\xcc\x33\x0\xcc\x33\x33\xcc\x33\x66\xcc\x33\x99\xcc\x33\xcc\xcc\x33\xff\xcc\x66\x0\xcc\x66\x33\xcc\x66\x66\xcc\x66\x99\xcc\x66\xcc\xcc\x66\xff\xcc"\ "\x99\x0\xcc\x99\x33\xcc\x99\x66\xcc\x99\x99\xcc\x99\xcc\xcc\x99\xff\xcc\xcc\x0\xcc\xcc\x33\xcc\xcc\x66\xcc\xcc\x99\xcc\xcc\xcc\xcc\xcc\xff\xcc\xff\x0\xcc\xff\x33\xcc\xff\x66\xcc\xff\x99\xcc\xff\xcc\xcc\xff\xff\xff\x0\x0\xff\x0\x33\xff\x0\x66\xff\x0\x99\xff\x0\xcc\xff\x0\xff\xff\x33\x0\xff\x33\x33\xff\x33\x66\xff\x33\x99\xff\x33\xcc\xff\x33\xff\xff\x66\x0\xff\x66\x33\xff\x66\x66\xff\x66"\ "\x99\xff\x66\xcc\xff\x66\xff\xff\x99\x0\xff\x99\x33\xff\x99\x66\xff\x99\x99\xff\x99\xcc\xff\x99\xff\xff\xcc\x0\xff\xcc\x33\xff\xcc\x66\xff\xcc\x99\xff\xcc\xcc\xff\xcc\xff\xff\xff\x0\xff\xff\x33\xff\xff\x66\xff\xff\x99\xff\xff\xcc\xff\xff\xff\x21\xe\x9\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0"\ "\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x21\xf9\x4\x1\x0\x0\xd8\x0\x2c\x0\x0\x0\x0\x8\x0\x8\x0\x0\x8"\ "\x19\x0\xaf\x61\x13\x48\x10\xdb\xc0\x83\x4\xb\x16\x44\x88\x50\xe1\x41\x86\x9\x21\x1a\x74\x78\x2d\x20\x0\x3b\xff" #define HTS_DATA_FADE_GIF_LEN 828 #endif